/**
 * @file MCU.h
 * @brief
 * @author F00
 * @date 2025-05-22
 */

#ifndef MCU_H
#define MCU_H

#include "Common.h"

void MCU_Init(void);
void Error_Handler(void);

void SystemClock_Config(void);
void SysTick_CallBack();

void MPU_Config(void);
void MX_GPIO_Init(void);
void MX_CRC_Init(void);
void MX_IWDG1_Init(void);

void WDT_Init(void);
void WDT_Feed(void);

void SysTick_Init(void);
bool Get_SysTick_2ms(void);
bool Get_SysTick_10ms(void);
bool Get_SysTick_200ms(void);
bool Get_SysTick_1s(void);

bool PFlash_Erase(void);
bool PFlash_Write(uint32_t Address, uint8_t *Buffer, uint32_t Size);

void CRC_Init(void);
uint32_t CRC_Calculate(uint32_t *Data, uint32_t Size);

#endif